package com.zaimokuza.cn.mapper;

import com.github.pagehelper.Page;
import com.zaimokuza.cn.entity.blog.Classification;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;

/**
 * @author zaimokuza
 */
@Mapper
public interface ClassificationMapper {

    /**
     * 添加分类
     *
     * @param classification 分类
     */
    void insertClassificationRecord(Classification classification);

    /**
     * 更新分类
     *
     * @param classification 分类
     */
    void updateClassificationRecord(Classification classification);

    /**
     * 删除分类
     *
     * @param id 分类ID
     */
    void deleteClassificationRecord(String id);

    /**
     * 根据用户ID查询分类集合
     *
     * @param userId 用户ID
     * @return 用户分类集合
     */
    ArrayList<Classification> queryClassificationListByUserId(String userId);

    /**
     * 根据用户域名查询分类集合
     *
     * @param userDomain 用户域名
     * @return 分类信息集合
     */
    ArrayList<Classification> queryClassificationListByUserDomain(String userDomain);

    /**
     * 查询分类分页集合
     *
     * @param name     分类名称
     * @param userName 用户名称
     * @return 分类分页集合
     */
    Page<Classification> queryClassificationPage(@Param("name") String name, @Param("userName") String userName);

    /**
     * 查询名称是否重复
     *
     * @param id     分类ID
     * @param userId 用户ID
     * @param name   名称
     * @return 1:重复;null:不重复
     */
    Integer queryClassificationNameIsRepeat(@Param("id") String id, @Param("userId") String userId, @Param("name") String name);

    /**
     * 查询分类是否存在
     *
     * @param id     分类ID
     * @param userId 用户ID
     * @return 1:存在;null:不存在
     */
    Integer queryClassificationIsExist(@Param("id") String id, @Param("userId") String userId);

    /**
     * 查询分类是否被使用
     *
     * @param id 分类ID
     * @return 1:已被使用;null:未被使用
     */
    Integer queryClassificationIsUse(String id);

}
